package com.atguigu.jxc.service;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.PurchaseList;
import com.atguigu.jxc.entity.PurchaseListGoods;
import com.atguigu.jxc.entity.GoodsCount;

import java.util.List;

public interface PurchaseListGoodsService {

    /**
     * 保存进货单
     * @param purchaseList
     * @param purchaseListGoodsStr
     * @return
     */
    ServiceVO save(PurchaseList purchaseList, String purchaseListGoodsStr);

    /**
     * 进货单列表展示（可条件查询：单据号模糊、供应商、是否付款和日期区间）
     * @param purchaseNumber
     * @param supplierId
     * @param state
     * @param sTime
     * @param eTime
     * @return
     */
    List<PurchaseList> list(String purchaseNumber, Integer supplierId, Integer state, String sTime, String eTime);

    /**
     * 查询进货单列表中的进货商品
     * @param purchaseListId
     * @return
     */
    List<PurchaseListGoods> goodsList(Integer purchaseListId);

    /**
     * 级联删除进货单和它的进货商品
     * @param purchaseListId
     * @return
     */
    ServiceVO delete(Integer purchaseListId);

    /**
     * 支付结算（修改进货单付款状态）
     * @param purchaseListId
     */
    void updateState(Integer purchaseListId);

    /**
     * 统计进货单
     * @param sTime
     * @param eTime
     * @param goodsTypeId
     * @param codeOrName
     * @return
     */
    List<GoodsCount> count(String sTime, String eTime, Integer goodsTypeId, String codeOrName);
}
